package practice1;


import javafx.util.Pair;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

/**
 * bfs
 */
public class P1135 {

    static int n,a,b;
    static int[][] g=new int[210][210];		//临接矩阵存储有向图
    static int[] dist=new int[210];		//表示到达当前楼层按了几次按钮

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        a=sc.nextInt();
        b=sc.nextInt();
        //创建有向无权图
        for(int i=1;i<=n;i++) {
            int k=sc.nextInt();
            if(i+k<=n) {
                g[i][i+k]=1;
            }
            if(i-k>=1) {
                g[i][i-k]=1;
            }
        }
        //bfs求最短路径
        Arrays.fill(dist, -1);
        boolean[] st=new boolean[n+1];
        Queue<Integer> queue=new LinkedList<>();
        queue.add(a);
        st[a]=true;
        dist[a]=0;
        while(!queue.isEmpty()) {
            Integer i=queue.remove();		//当前楼层
            if(i==b) {
                System.out.println(dist[i]);
                return;
            }
            for(int j=1;j<=n;j++) {
                if(!st[j] && g[i][j]==1) {	//若该节点未访问过并且有路径到达,则添加进队列并更新距离
                    queue.add(j);
                    st[j]=true;
                    dist[j]=dist[i]+1;
                }
            }
        }
        System.out.println(-1);
    }
}
